﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Datalayer;
using Entities;
namespace Common
{
    public class cl_EditAll1Form1
    {
        public void EditAll(DataTable modifiedTable, DataTable dt)
        {
            if (modifiedTable != null)
            {
                string[] _ID = new string[modifiedTable.Rows.Count];
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Modified)
                    {
                        try
                        {
                            EditAllQuanHeGiadinh(dr);
                            DevExpress.XtraEditors.XtraMessageBox.Show("Cập nhật thành công ! ID =" + dr["Ma_ChiTiet"]);
                        }
                        catch
                        {
                            DevExpress.XtraEditors.XtraMessageBox.Show("cập nhật thất bại! với ID =" + dr["Ma_ChiTiet"]);
                        }
                    }
                }
            }
            else
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("Dữ liệu không có sự thay đổi !");
            }
        }
        public void EditAllQuanHeGiadinh(DataRow dr)
        {
            IQueryMgr iq= QueryMgr.GetDbInstance();
            QuanHeGiaDinh qhgd=new QuanHeGiaDinh();

            qhgd.Ma_ChiTiet = int.Parse(dr["Ma_ChiTiet"].ToString());
            qhgd.Ma_HoNgheo = dr["Ma_HoNgheo"].ToString();
            qhgd.Ten_ThanhVien = (dr["Ten_ThanhVien"].ToString());
            qhgd.Ma_QuanHe = int.Parse(dr["Ma_QuanHe"].ToString());
            qhgd.NamSinh = int.Parse(dr["NamSinh"].ToString());
            qhgd.Ma_DanToc = int.Parse(dr["Ma_DanToc"].ToString());
            qhgd.Ma_ChinhSach = int.Parse(dr["Ma_ChinhSach"].ToString());
            qhgd.Ma_BaoTroXaHoi = int.Parse(dr["Ma_BaoTroXaHoi"].ToString());
            qhgd.Ma_CapHoc = int.Parse(dr["DiaChi"].ToString());
            qhgd.Ma_ViecLam = int.Parse(dr["Ma_ViecLam"].ToString());
            qhgd.IsDeleted = bool.Parse(dr["IsDeleted"].ToString());
            iq.Qhgd_EditQuanHeGiaDinh(qhgd);
        }
        public static bool Batloi_Hongheo(HoNgheo hn,ref string OutStr)
        {
            bool ok = true;
            if (hn.SoNha == "")
            {
                ok = false;
                OutStr = "chưa nhập số nhà !";
            }else
                if (hn.Ma_Phuong == 0)
                {
                    ok = false;
                    OutStr = "chưa chọn phường đang cư trú !";
                }
            return ok;
        }
        public static DataTable Create_dt(List<HoNgheo> ls)
        {
            DataTable dt = new DataTable();
            dt = cl_EditAll1Form1.create_cl();
            for (int i = 0; i < ls.Count; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Ma_HoNgheo"] = ls[i].Ma_HoNgheo;
                dr["SoNha"] = ls[i].SoNha;
                dr["ghiChu"] = ls[i].ghiChu;

                //// get số lượng thành viên trong hộ gia đình
                int sltv = SoThanhVien(ls[i].Ma_HoNgheo);
                decimal TNTB = 0;
                if (sltv != 0)
                {
                    TNTB = Cl_Convert.TongThuNhap(ls[i].Ma_HoNgheo) / sltv;
                }
                dr["ThuNhap"] = TNTB;

                IQueryMgr iq = QueryMgr.GetDbInstance();
                QuanHeGiaDinh gd = new QuanHeGiaDinh();
                gd = iq.QHGD_GetQuanHeGiaDinhByIsChuHo_HoNgheoID(ls[i].Ma_HoNgheo);
                if (gd != null)
                {
                    dr["Ten_ThanhVien"] = gd.Ten_ThanhVien;
                    dr["Ma_ViecLam"] = gd.Ma_ViecLam;
                    dr["GioiTinh"] = gd.GioiTinh;
                }
                else
                {
                    dr["Ten_ThanhVien"] = "";
                    dr["Ma_ViecLam"] = "";
                    dr["GioiTinh"] = false;
                }
                dt.Rows.Add(dr);
            }
            return dt;
        }
        public static int SoThanhVien(string IDHongheo)
        {
            IQueryMgr iq = QueryMgr.GetDbInstance();
            List<QuanHeGiaDinh> lgd = iq.QHGD_GetQuanHeGiaDinhByHoNgheoID(IDHongheo);
            int sl = lgd.Count;
            return sl;
        }
        public static DataTable Create_dt(List<HoNgheo> ls,decimal ThuNhapSearch)
        {
            DataTable dt = new DataTable();
            dt = cl_EditAll1Form1.create_cl();
            for (int i = 0; i < ls.Count; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Ma_HoNgheo"] = ls[i].Ma_HoNgheo;
                dr["SoNha"] = ls[i].SoNha;
                dr["ghiChu"] = ls[i].ghiChu;
                dr["ThuNhap"] = Cl_Convert.TongThuNhap(ls[i].Ma_HoNgheo);
                //// get số lượng thành viên trong hộ gia đình
                int sltv = SoThanhVien(ls[i].Ma_HoNgheo);
                decimal TNTB = 0;
                if (sltv != 0)
                {
                    TNTB = Cl_Convert.TongThuNhap(ls[i].Ma_HoNgheo) / sltv;
                }
                dr["ThuNhap"] = TNTB;
                IQueryMgr iq = QueryMgr.GetDbInstance();
                QuanHeGiaDinh gd = new QuanHeGiaDinh();
                int l2 = Cl_Convert.getLoaiByTongThuNhap(ThuNhapSearch);
                int l3 = l2 + 1;
                int l1 = Cl_Convert.getLoaiByTongThuNhap(TNTB);
                if (l1 == l2 || l3==l1)
                {
                    gd = iq.QHGD_GetQuanHeGiaDinhByIsChuHo_HoNgheoID(ls[i].Ma_HoNgheo);
                    if (gd != null)
                    {
                        dr["Ten_ThanhVien"] = gd.Ten_ThanhVien;
                        dr["Ma_ViecLam"] = gd.Ma_ViecLam;
                        dr["GioiTinh"] = gd.GioiTinh;
                    }
                    else
                    {
                        dr["Ten_ThanhVien"] = "";
                        dr["Ma_ViecLam"] = "";
                        dr["GioiTinh"] = false;
                    }
                    dt.Rows.Add(dr);
                }
            }
            return dt;
        }
        public static DataTable create_cl()
        {
            DataTable dt = new DataTable();

            DataColumn dc1 = new DataColumn();
            dc1.ColumnName = "Ma_HoNgheo";
            dc1.DataType = typeof(string);
            dc1.AllowDBNull = false;
            dt.Columns.Add(dc1);

            DataColumn dc2 = new DataColumn();
            dc2.ColumnName = "Ten_ThanhVien";
            dc2.DataType = typeof(string);
            dc2.AllowDBNull = false;
            dt.Columns.Add(dc2);

            DataColumn dc3 = new DataColumn();
            dc3.ColumnName = "GioiTinh";
            dc3.DataType = typeof(bool);
            dc3.AllowDBNull = false;
            dt.Columns.Add(dc3);

            DataColumn dc4 = new DataColumn();
            dc4.ColumnName = "SoNha";
            dc4.DataType = typeof(string);
            dc4.AllowDBNull = false;
            dt.Columns.Add(dc4);

            DataColumn dc5 = new DataColumn();
            dc5.ColumnName = "ghiChu";
            dc5.DataType = typeof(string);
            dc5.AllowDBNull = false;
            dt.Columns.Add(dc5);

            DataColumn dc6 = new DataColumn();
            dc6.ColumnName = "ThuNhap";
            dc6.DataType = typeof(decimal);
            dc6.AllowDBNull = false;
            dt.Columns.Add(dc6);
            
            DataColumn dc7 = new DataColumn();
            dc7.ColumnName = "Ma_ViecLam";
            dc7.DataType = typeof(string);
            dt.Columns.Add(dc7);
            return dt;
        }
    }
}
;